import java.util.Scanner;
import java.util.*;
public class Main {
    /*给你一个整数数组 nums 和一个整数 k 。
    每一步操作中，你需要从数组中选出和为 k 的两个整数，并将它们移出数组。
    返回你可以对数组执行的最大操作数。*/
    public static int seek(int[] nums,int k) {
        Map<Integer,List<Integer>>map=new HashMap<>();
        int count=0;
        for(int i=0;i<nums.length;i++){
             for(int j=i+1;j<nums.length;j++){
                 int temp=nums[i]+nums[j];
              if(temp!=k){
                  map.put(nums[i],new ArrayList<>());
              }
              map.get(temp).add(k);
             }
        }
        for(List<Integer> list:map.values()){
            for(Integer num:list){
                if(num==k)
                    count++;
            }
        }
        return count/2;
    }
    public static void main(String[] args) {
       Scanner sc=new Scanner(System.in);
       int n=sc.nextInt();
       int[] nums=new int[n];
       for(int i=0;i<n;i++){
           nums[i]=sc.nextInt();
       }
       int k=sc.nextInt();
       int maxcount=seek(nums,k);
       System.out.println(maxcount);
    }
}